<?php
include('includes/configuration_include.php');
/*
 * URL-REWRITING : TRAITEMENT DES REQUETES GET ET POST
 */

/* Le passage des param�tres dans un lien ce fait comme ceci :
 *
 * 		'http://localhost/monsite/ma_page/param1-value1-param2-value2..'
 *
 * 'ma_page' est stock� dans $_GET['page']
 *
 * 'param1-value1-param2-va..' est stock� dans $_GET['param']
 *
 * Cette partie du code sert � mettre les couples param1/value1,
 * param2/value2...dans $_GET et $_POST de fa�on � avoir :
 * 
 * 	$GET['param1']= value1;		$POST['param1']= value1;
 * 	$GET['param2']= value2;		$POST['param2']= value2;
 * 	...
 * 
 * On peut choisir d'avoir des nom de param�tres dans les $GET et $_POST
 * diff�rents de ceux affich�s dans l'URL.
 * 
 * Par exemple on peut voir dans le module 'connection' que pour se d�connecter
 * il faut avoir : $_GET['log_out']== 1 .
 * 
 * Or je trouve qu'�crire 'accueil/log_out-1' n'est pas tr�s esth�tique.
 * 
 * Donc pour �viter d'�tre obliger de rentrer le vrai nom de param�tre dans
 * l'url j'ai un tableau o� on peut rentrer des noms de param�tres personalis�s.
 * 
 * Pour l'exemple de la d�connexion avec le module 'connection' on aura juste � mettre :
 * 
 * 		$customParameters['deconnexion']= 'log_out'.
 * 
 * Et quand l'utilisateur cliquera sur 'accueil/deconnexion-1' on aura bien $_GET['log_out']=1.
 * 
 */


/*
 * CHARGE LA BONNE PAGE SI CERTAINS ONT DES 'POST' DANS LEUR MODULE
 * 
 * Dans tous les formulaires des modules utilisant la m�thode POST du protocole HTTP
 * Il faudra ajouter un champ cach� avec dedans le nom de votre module.
 * Par exemple le formulaire du module d'inscription devra ressembler � ceci :
 * 
 * 	<form...method="POST">
 * 		...
 * 		<input type="hidden" name="module_name" value="quick_registration">
 * 		...
 * 	</form>
 */

// Tableau pour les noms de param�tres personnalis�s
$customParameters = array(
    'deconnexion' => 'log_out'
    , 'categorie' => 'category'
);

if (!empty($_GET['param'])) {
    // 'Eclate' la chaine $_GET['param'] au niveau des caract�res '-' pour en faire un tableau
    $parameters = explode('-', $_GET['param']);

    // Charge les couples nom_de_parametre/valeur dans $_GET
    for ($i = 0; $i < count($parameters); $i++) {
        // Si pour une raison X ou Y le param�tre est vide
        if (empty($parameters[$i]))
            continue;

        // Si il s'agit bien un couple nom_de_parametre/valeur
        if (!empty($parameters[$i + 1])) {
            $parameterName = $parameters[$i];
            $parameterValue = $parameters[$i + 1];

            if (empty($customParameters[$parameterName]))
                $_GET[$parameterName] = $parameterValue;

            else
                $_GET[$customParameters[$parameterName]] = $parameterValue;

            $i++;
        }
        // Sinon on assigne la valeur par d�fault 0 au param�tre
        else
            $_GET[$parameters[$i]] = 0;
    }

    // M�me chose pour la variable superglobale $_POST
    for ($i = 0; $i < count($parameters); $i++) {
        // Si pour une raison X ou Y le param�tre est vide
        if (empty($parameters[$i]))
            continue;

        // Si il s'agit bien un couple nom_de_parametre/valeur
        if (!empty($parameters[$i + 1])) {
            $parameterName = $parameters[$i];
            $parameterValue = $parameters[$i + 1];

            if (empty($customParameters[$parameterName]))
                $_POST[$parameterName] = $parameterValue;

            else
                $_POST[$customParameters[$parameterName]] = $parameterValue;

            $i++;
        }
        // Sinon on assigne la valeur par d�faut 0 au param�tre
        else
            $_POST[$parameters[$i]] = 0;
    }
}

/*
 * CHARGE LA BONNE PAGE SI CERTAINS ONT DES 'POST' DANS LEUR MODULE
 * 
 * Dans tous les formulaires des modules utilisant la m�thode POST du protocole HTTP
 * Il faudra ajouter un champ cach� avec dedans le nom de votre module.
 * Par exemple le formulaire du module d'inscription devra ressembler � ceci :
 * 
 * 	<form...method="POST">
 * 		...
 * 		<input type="hidden" name="module_name" value="quick_registration">
 * 		...
 * 	</form>
 */
if (!empty($_POST['module_name'])) {
    $_GET['page'] = $_POST['module_name'];
}

/*
 * GESTION DE LA DECONNEXION
 */
if (!empty($_GET['log_out']) && $_GET['log_out'] == 1) {
    // D�truit toutes les variables de session
    $_SESSION = array();
    header('location:' . URL_ROOT);
}


/* CHARGEMENT DES LANGUES */
$lang = '';
if (isset($_GET['lang']))
    $lang = $_GET['lang'];
else if (isset($_SESSION['lang']))
    $lang = $_SESSION['lang'];

switch ($lang) {
    case 'en':
        $path = PATH_EN;
        break;

    case 'fr':
        $path = PATH_FR;
        break;

    default:
        $lang = 'fr';
        $path = PATH_FR;
        break;
}

if (isset($_GET['lang']))
    $_SESSION['lang'] = $lang;

$lang_files = scandir($path);

for ($i = 2; $i < count($lang_files); $i++)
    include( $path . $lang_files[$i]);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd"><html>
    <head>
        <!-- Head -->
        <?php include( PATH_INCLUDES . 'head_include.php'); ?>
    </head>
    <body onResize="loadOnResize()">
        <div id="container">

            <!-- Header -->
            <?php include( PATH_INCLUDES . 'header_include.php'); ?>

            <!-- Contenu -->
            <div id="content">
                <?php
                if (!empty($_GET['page'])) {
                    switch ($_GET['page']) {
                        case "home":
                            page_home();
                            break;

                        case "oeuvres":
                            page_works();
                            break;

                        case "actualites":
                            page_news();
                            break;

                        case "profils":
                            page_profiles();
                            break;

                        case "contact":
                            page_contact();
                            break;

                        case "admin":
                            page_admin();
                            break;

                        case "user-view":
                            page_user_view();
                            break;
                        
                        case "update-home":
                            page_update_home();
                            break;
                        
                        case "update-comments":
                            page_update_comments();
                            break;

                        case "create-new":
                            page_create_new();
                            break;
                        
                         case "update-news":
                            page_update_new();
                            break;

                        case "create-work":
                            page_create_work();
                            break;
                        case "update-work":
                            page_update_work();
                            break;
                        
                        case "create-admin":
                            page_create_admin();
                            break;
                        
                         case "update-admin":
                            page_update_admin();
                            break;
                        
                        case "update-about":
                            page_update_about();
                            break;
                        
                        case "create-extra":
                            page_create_extra();
                            break;
                        
                        case "control-slide":
                            control_slide();
                            break;

                        case "mention-legal":
                            page_legal();
                            break;

                        case "faq":
                            page_faq();
                            break;

                        case "about":
                            page_about();
                            break;
                        
                        case "oublie":
                            page_oublie();
                            break;

                        default:
                            page_home();
                            break;
                    }
                }
                else
                    page_home();
                ?>
            </div>
            
            <!-- Footer -->
            <?php include( PATH_INCLUDES . 'footer_include.php'); ?>

        </div>

    </body>
</html>

<?php
/*
 * FONCTIONS POUR L'AFFICHAGE DES PAGES
 */

function page_home() {
    echo ' <link rel="stylesheet" href="' . URL_CSS . 'slide.css" />';
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'home.css">';
    
    echo '<div id="lefthomebox">';
    include( PATH_CONTROLLERS.'map_controller.php');
    
    echo '</div><div id="righthomebox">';
    include(PATH_CONTROLLERS.'slide_controller.php');
    echo '<div id="bottomhomebox">';
    include( PATH_CONTROLLERS . 'home_controller.php');
    echo '</div></div>';
}

function page_news() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'display_news.css" />';
    include( PATH_CONTROLLERS . 'news_controller.php');
}
function page_works() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'display_works.css" />
            <link href="' . URL_CSS . 'lightbox.css" rel="stylesheet" type="text/javascript" />
                
            <script src="' . URL_JS . 'lightbox.js" type="text/javascript"></script>
      <link rel="stylesheet" href="' . URL_CSS . 'themes/default/default.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="' . URL_CSS . 'themes/light/light.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="' . URL_CSS . 'themes/dark/dark.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="' . URL_CSS . 'themes/bar/bar.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="' . URL_CSS . 'nivo-slider.css" type="text/css" media="screen" />
    ';
   echo"  <script type='text/javascript' src='" . URL_JS . "jquery.nivo.slider.js'></script>
    <script type='text/javascript'>
    $(window).load(function() {
        $('#slider').nivoSlider();
    });
    </script>";
    include( PATH_CONTROLLERS . 'works_controller.php');
}

function page_profiles() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'display_profiles.css" />';
    include( PATH_CONTROLLERS . 'profiles_controller.php');
}

function page_admin() {
 echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'admin.css" />';

    include( PATH_CONTROLLERS . 'admin_controller.php');
}

function page_create_new() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'create_new.css" />';
    include( PATH_CONTROLLERS . 'create_new_controller.php');
}
function page_update_new() {
    include( PATH_CONTROLLERS . 'update_news_controller.php');
}

function control_slide(){
    include( PATH_CONTROLLERS . 'control_slide_controller.php');
}
function page_create_work() {
    include( PATH_CONTROLLERS . 'create_work_controller.php');
}
function page_update_work() {
    include( PATH_CONTROLLERS . 'update_work_controller.php');
}

function page_update_home() {
    include( PATH_CONTROLLERS . 'update_home_controller.php');
}

function page_create_extra() {
        include( PATH_CONTROLLERS . 'create_extra.php');

}

function page_create_admin() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'create_admin.css" />';
    include( PATH_CONTROLLERS . 'create_admin_controller.php');
}
function  page_update_admin() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'create_admin.css" />';
    include( PATH_CONTROLLERS . 'update_admin_controller.php');
}

function  page_update_comments() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'display_works.css" />';
    include( PATH_CONTROLLERS . 'update_comment_controller.php');
}

function  page_update_about() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'display_works.css" />';
    include( PATH_CONTROLLERS . 'update_about_controller.php');
}

function page_user_view() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'user_view.css" />';
    include( PATH_CONTROLLERS . 'admin_user_controller.php');
}

function page_legal() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'user_view.css" />';
    include( PATH_INCLUDES . 'legal_mention.php');
}

function page_faq() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'user_view.css" />';
    include( PATH_INCLUDES . 'faq.php');
}

function page_about() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'user_view.css" />';
    include( PATH_INCLUDES . 'about.php');
}

function page_contact() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'contact.css" />';
    include( PATH_INCLUDES . 'contact.php');
}


function page_oublie() {
    echo '<link rel="stylesheet" type="text/css" href="' . URL_CSS . 'oublie.css" />';
    include( PATH_INCLUDES . 'oublie.php');
}
?>